Applications executing in an emulated environment access modules in a host operating system through an interface. FIG. 1 is a block diagram illustrating a conventional application executing in a host operating system. An application 110 executes inside an emulated environment 108. To perform certain function, such as when functions are performed in hardware, the emulated environment 108 accesses modules 104 in the host operating system 102 through an interface 106, including an interface component 106a in the emulated environment 108 and an interface component 106b in the operating system 102. The interface 106 provides translation services and acts as an intermediary between the emulated environment 108 and the modules 104 of the host operating system 102. The interface 106a in the emulated environment 108 communicates with the cooperating interface 106b in the operating system 102. The cooperating interface 106b in the operating system 102 then makes the calls on the modules 104.
Calls from the application 110 to the module 104 are costly in terms of execution speed and memory overhead, because of translation of the data to/from the format needed by the operating system 102 and to actually move the data from the emulated environment 108 to the modules 104. The increased delay and overhead in accessing the modules 104 through the interface 106 with each call can degrade performance of the application 110 within the emulated environment 108. Thus, there is a need to reduce use of the interface 106 to improve performance of the application 110.